﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Guoc.Log;
using System.IO;
namespace Guoc.Web.Test.LogTest
{
    /// <summary>
    /// LogManagerTest 的摘要说明
    /// </summary>
    [TestClass]
    public class LogManagerTest
    {
        public LogManagerTest()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }

        private TestContext testContextInstance;

        /// <summary>
        ///获取或设置测试上下文，该上下文提供
        ///有关当前测试运行及其功能的信息。
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region 附加测试特性
        //
        // 编写测试时，可以使用以下附加特性:
        //
        // 在运行类中的第一个测试之前使用 ClassInitialize 运行代码
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // 在类中的所有测试都已运行之后使用 ClassCleanup 运行代码
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // 在运行每个测试之前，使用 TestInitialize 来运行代码
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // 在每个测试运行完之后，使用 TestCleanup 来运行代码
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        [TestMethod]
        public void FileLog_WriteLog()
        {            
            string msg = "文件日志";
            string path=@"E:\VS2010Code\Guoc\Guoc.Log\bin\Debug\"+DateTime.Now.ToString("yyyyMMdd")+".txt";
            LogManager.WriteLog(msg, path);

           using(FileStream fs = new System.IO.FileStream(path, FileMode.OpenOrCreate))
           {
            StreamReader reader = new StreamReader(fs, Encoding.Default);
            List<string> list = new List<string>();
            string line = reader.ReadLine();
            Assert.IsNotNull(line);  //不为空
            while (line != null)
            {
                list.Add(line);
                line = reader.ReadLine();
            }            
            //最后一行包含msg
            Assert.IsTrue(list[list.Count-1].Contains(msg));
           }

        }
    }
}
